package com.集合.Collections类.模拟斗地主;
/*案例：模拟斗地主
需求：通过程序实现斗地主过程中的洗牌，发牌和看牌
思路：
① 创建一个牌盒，也就是定义一个集合对象，用ArrayList集合实现
② 往牌盒里面装牌
③ 洗牌，也就是把牌打撒，用Collections的shuffle0方法实现
④ 发牌，也就是遍历集合，给三个玩家发牌
⑤ 看牌，也就是三个玩家分别遍历自己的牌*/

import java.util.ArrayList;
import java.util.Collections;

public class ImitateDDZ {
    public static void main(String[] args) {
        System.out.println("--------本局斗地主正式开始-------");
        System.out.println();
        ArrayList<String> al = new ArrayList<>();
        savePoker(al);
        sortPoker(al);
        sendAndShowPoker(al);
    }

    //    装牌
    public static void savePoker(ArrayList<String> a) {
        System.out.println("--------已装牌如下：--------");
        a.add("梅花A");
        for (int i = 2; i < 11; i++) {
            a.add("梅花" + i);
        }
        a.add("梅花J");
        a.add("梅花Q");
        a.add("梅花K");

        a.add("方块A");
        for (int i = 2; i < 11; i++) {
            a.add("方块" + i);
        }
        a.add("方块J");
        a.add("方块Q");
        a.add("方块K");

        a.add("黑桃A");
        for (int i = 2; i < 11; i++) {
            a.add("黑桃" + i);
        }
        a.add("黑桃J");
        a.add("黑桃Q");
        a.add("黑桃K");

        a.add("红桃A");
        for (int i = 2; i < 11; i++) {
            a.add("红桃" + i);
        }
        a.add("红桃J");
        a.add("红桃Q");
        a.add("红桃K");

        a.add("大王");
        a.add("小王");

        System.out.println(a);
    }

    //    洗牌
    public static void sortPoker(ArrayList<String> a) {
        Collections.shuffle(a);
        System.out.println("--------已完成洗牌，将为玩家发牌--------");
    }

    //    发牌并看牌
    public static void sendAndShowPoker(ArrayList<String> a) {
        ArrayList<String> a1 = new ArrayList<>();
        ArrayList<String> a2 = new ArrayList<>();
        ArrayList<String> a3 = new ArrayList<>();
        int b = 0;

        for (int i = 0; i < 18; i++) {
            String c = a.get(b);
            a1.add(c);
            b++;
        }

        if (a1.size() == 18) {
            for (int j = 18; j < 36; j++) {
                String c = a.get(b);
                a2.add(c);
                b++;
            }
        }

        for (int k = 36; k < 54; k++) {
            String c = a.get(b);
            a3.add(c);
            b++;
        }

        System.out.println("--------第一位玩家的牌为：--------");
        for(String s1:a1){
            System.out.println(s1);
        }
        System.out.println("--------第二位玩家的牌为：--------");
        for(String s2:a2){
            System.out.println(s2);
        }
        System.out.println("--------第三位玩家的牌为：--------");
        for(String s3:a3){
            System.out.println(s3);
        }
    }
}


